home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / PASCAL / ALLSWAGS.ZIP / SWAGG-M.ZIP / MISC.SWG / 0140_Finding Pentium FDiv Error.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-05-26  |  845 b   |  32 lines

  1. {
  2. From: brownwm@aplcenmp.apl.jhu.edu (William G. S. Brown)
  3.  
  4. Here is a short Pentium test program that will uncover the FDIV
  5. error. Note: Sometimes just setting X&Y then then printing
  6. X-(X/Y)*Y will not show the error because the optimization is
  7. smart enough to form the answer at compile time.
  8. }
  9.  
  10. {$N+}
  11. Program Pentium;
  12. { test a Pentium for FDIV error }
  13. { computes X-(X/Y)*Y which should be 0.000000}
  14. {     Good Pentium should return 0.000000000E+0000}
  15. {     Bad Pentium will return    2.560000000E+0002}
  16.  
  17.    var
  18.       X,Y: double;
  19.  
  20. { the procedure is to make sure optimization won't hide error }
  21. procedure Test( A,B,C,D : double);
  22. begin { Test }
  23.     writeln(A-(B/C)*D);
  24. end; { Test }
  25.  
  26. begin { Pentium }
  27.     X := 4195835;
  28.     Y := 3145727;
  29.     Test(X, X, Y, Y); { same as X-(X/Y)*Y e.g. 0.0000}
  30. end. { Pentium }
  31.  
  32.